There are a number of software applications that require authentication. For example, many e-commerce, home banking, and network access applications need authentication to provide the user a level of security. In most cases the need for authentication is addressed by requiring the user to enter a text-based password or passphrase. Text-based passwords, and especially passphrases, are more difficult to input when using a small mobile devices. The use of passwords and passphrases are restricted to the availability of suitable keyboards. Additionally, text-based passwords and passphrases can be easily compromised when a malicious user determines the correct password or passphrase.